/*
 * Copyright (C) 2017-2021
 * All rights reserved, Designed By
 * Copyright authorization contact 18814114118
 */
package com.shop.cereshop.commons.domain.shop;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * cere_platform_shop 商家信息实体类
 *
 * @author
 */
@ApiModel(value = "CerePlatformShop", description = "商家信息实体类")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CerePlatformShop implements Serializable {

  private static final long serialVersionUID = 1L;

  @TableId(type = IdType.AUTO)
  @ApiModelProperty(value = "店铺id")
  private Long shopId;

  @ApiModelProperty(value = "商家编码")
  private String shopCode;

  @ApiModelProperty(value = "店铺名称")
  private String shopName;

  @Deprecated
  @ApiModelProperty(value = "(弃用)商家类型表 1、同城服务  2、线上商城/同城配送")
  private String type;

  @ApiModelProperty(value = "是否支持同城购0-否，1-是")
  private Integer isCityStore;

  @ApiModelProperty(value = "是否支持电商购0-否，1-是")
  private Integer isOnlineStore;

  @ApiModelProperty(value = "是否支持到店核销0-否，1-是")
  private Integer isInStore;

  @ApiModelProperty(value = "同城配送-配送距离（公里）")
  private Integer cityStoreDistance;

  @ApiModelProperty(value = "同城配送-营业状态0-打烊，1-营业")
  private Integer cityStoreIsserving;

  @ApiModelProperty(value = "简介")
  private String shopBrief;

  @ApiModelProperty(value = "店铺账号")
  private String shopPhone;

  @ApiModelProperty(value = "店铺密码")
  private String shopPassword;

  @ApiModelProperty(value = "店铺负责人")
  private String chargePersonName;
  @ApiModelProperty(value = "支付密码(加密)")
  private String payPassword;

  @ApiModelProperty(value = "是否设置支付密码 0-否 1-是")
  private Integer isSetPayPassword;

  @ApiModelProperty(value = "支付密码错误次数")
  private Integer payPasswordErrorCount;

  @ApiModelProperty(value = "支付密码锁定时间")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  private LocalDateTime payPasswordLockTime;

  @ApiModelProperty(value = "负责人电话")
  private String chargePersonPhone;

  @ApiModelProperty(value = "店铺城市码")
  private String cityCode;

  @ApiModelProperty(value = "店铺地址-省")
  private String shopAdressProvince;

  @ApiModelProperty(value = "店铺地址-市")
  private String shopAdressCity;

  @ApiModelProperty(value = "店铺地址区")
  private String shopAddressDist;

  @ApiModelProperty(value = "店铺地址")
  private String shopAdress;

  @ApiModelProperty(value = "店铺地址-详细地址")
  private String shopAdressDetail;

  @ApiModelProperty(value = "商家点位")
  private String location;

  @ApiModelProperty(value = "店铺logo")
  private String shopLogo;

  @ApiModelProperty(value = "生效日期  即时生效-设置当前时间 有值-指定日期生效")
  private String effectiveDate;

  @ApiModelProperty(value = "生效时限（年）")
  private Integer effectiveYear;

  @ApiModelProperty(value = "合同状态 1-有效 0-无效")
  private Integer contractState;

  @ApiModelProperty(value = "认证状态 1-未认证 2-认证中 3-认证完成 4-认证失败 5-审核通过 6-审核失败 7-签约成功（使用中）")
  private Integer authenticationState;

  @ApiModelProperty(value = "入驻处理状态 0-未处理 1-通过 2-拒绝")
  private Integer checkState;

  @ApiModelProperty(value = "是否启用 1-是 0-否")
  private Integer state;

  @ApiModelProperty(value = "主体类型 1-普通企业店 2-个体工商户 3-品牌旗舰店 4-其他组织")
  private Integer authenType;

  @ApiModelProperty(value = "微信收款码")
  private String wxImage;

  @ApiModelProperty(value = "支付宝收款码")
  private String ailpayImage;

  @ApiModelProperty(value = "运费类型 1-全国包邮(可设置不包邮地区) 2-全国不包邮 3-满额包邮(可设置不包邮地区)")
  private Integer logisticsType;

  @ApiModelProperty(value = "满额包邮金额阈值(仅logistics_type= 3时生效)")
  private BigDecimal logisticsFreeFee;

  @ApiModelProperty(value = "不包邮地区列表(省) 仅在logistics_type = 1 和 =3时生效")
  private String excludeRegions;

  @ApiModelProperty(value = "创建时间")
  private LocalDateTime createTime;

  @ApiModelProperty(value = "更新时间")
  private LocalDateTime updateTime;

  @ApiModelProperty(value = "交易分成比例")
  private Integer divide;

  @ApiModelProperty(value = "平台收款码")
  private String collectionCode;

  @ApiModelProperty(value = "审核直播间 1-开启 0-关闭")
  private Integer auditLive;

  @ApiModelProperty(value = "审核直播间商品 1-开启 0-关闭")
  private Integer auditLiveProduct;

  @ApiModelProperty(value = "店铺图片")
  private String shopImage;

  @ApiModelProperty(value = "认证流程ID")
  private String qualificationFlowId;

  @ApiModelProperty(value = "资质认证是否完成 0-未完成 1-已完成")
  private Integer qualificationCompleted;

  @ApiModelProperty(value = "资质认证完成时间")
  private String qualificationCompletedTime;

  @ApiModelProperty(value = "资质认证开始时间")
  private String qualificationStartTime;

  @ApiModelProperty(value = "店铺门头照")
  private String storefront;

  // private String shopAdressDist;

  @TableField(exist = false)
  @ApiModelProperty(value = "热销店铺,1表示热销，0表示否")
  private Integer status;

  @TableField(exist = false)
  @ApiModelProperty(value = "商家是否启用 1-是 0-否")
  private Integer businessState;

}
